<!DOCTYPE html>
<html lang="en">
<head>
    <title>囧么肥事</title>
    <meta charset="UTF-8"/>
    <meta name="viewport"
          content="width=device-width,height=device-height,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Content-Type" content="text/html;"/>
    <meta name="renderer" content="webkit">
    <!--解决页面加载网络图片的403问题 , 可以让img标签预加载网络图片-->
    <meta name="referrer" content="no-referrer" />

    <!--markdown S -->
    <link rel="stylesheet" type="text/css" href="../../static/css/export_setting_css.css"/>
    <link rel="stylesheet" type="text/css" href="../../static/css/markdown_preview_css.css"/>
    <!--markdown E -->

    <!--left bar tools css E-->
    <link rel="stylesheet" type="text/css" href="../../static/css/nav.css">
    <link rel="stylesheet" type="text/css" href="http://www.jq22.com/jquery/font-awesome.4.6.0.css">
    <!--left bar tools css E-->

    <!-- 滚动条 S -->
    <link rel="stylesheet" href="../../static/css/optiscroll.css">
    <!-- 滚动条 E -->
</head>
<body>
<div id="m-wrapper" class="m-wrapper optiscroll">
    <!-- top 锚点 -->
    <a id="top"></a>

    <!-- left bar tools S -->
    <div class="leftNav-item">
        <ul>
            <li>
                <i class="fa fa-location-arrow"></i>
                <a href="http://jiongmefeishi.gitee.io/monster-blog/" target="_blank" class="rota">个人网站</a>
            </li>

            <li title="Git">
                <i class="fa fa-code-fork" aria-hidden="true"></i>
                <a href="http://jiongmefeishi.gitee.io/monster-blog/" target="_blank" class="rota">Git Page</a>
            </li>

            <li lay-data="img" data-fooc="http://resource.zqtaotao.cn/wx/qrcode/jiongmefeishi.jpg">
                <i class="fa fa-comments-o"></i><a href="javascript:;" class="rota">公众号</a>
            </li>

            <li lay-data="img" data-fooc="http://resource.zqtaotao.cn/weixincode.png">
                <i class="fa fa-money"></i><a href="javascript:;" class="rota">小额打赏</a>
            </li>
            <li title="返回顶部" class="for-top">
                <i class="fa fa-arrow-up"></i>
                <a href="#top" class="rota">去顶部</a>
            </li>
        </ul>
    </div>
    <!-- left bar tools E -->

    <!--content S-->
    <div id="export_content"><div class="output_wrapper" id="output_wrapper_id"><h3 id="hkubernetespod"><span>kubernetes集群之Pod说能不能让我体面的消亡呀？</span></h3>
        <p>由于 Pod 所代表的是在集群中节点上运行的进程，当不再需要这些进程时允许其体面地终止。</p>
        <p>1、如果 preStop 回调所需要的时间长于默认的体面终止限期会发生什么？</p>
        <p>2、 Pod 的体面终止限期是默认值是多少？</p>
        <p>3、超出终止宽限期限时，kubelet 会触发强制关闭过程，这个过程是怎么样的？</p>
        <p>4、强制删除 StatefulSet 的 Pod，会出现什么问题？为什么强制删除 StatefulSet 的 Pod可能会违背至多一个Pod原则？</p>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/742c662cb9cec8287bb24fd310a2a6e7.gif" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="h"><span>囧么肥事-胡说八道</span></h3>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/b14c12777d918445542cb95127bba0a6.png" alt="" title=""><figcaption></figcaption></figure>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/8ebffa2bb617ed93964e5695e8f1751a.png" alt="" title=""><figcaption></figcaption></figure>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/04e00c8b0d14362c1eecb3de7573d1bb.png" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="h1pod"><span>1、Pod 的体面终止限期是默认值是多少？</span></h3>
        <p>默认情况下，所有的删除操作都会附有 <strong>30 秒钟</strong>的宽限期限。</p>
        <p><code>kubectl delete</code> 命令支持 <code>--grace-period=&lt;seconds&gt;</code> 选项，允许你<strong>重载默认值</strong>， 设定自己希望的期限值。</p>
        <p>将宽限期限<strong>强制</strong>设置为 <code>0</code> 意味着立即从 API 服务器删除 Pod。</p>
        <p>如果 Pod 仍然运行于某节点上，强制删除操作会触发 <code>kubelet</code> 立即执行清理操作。</p>
        <blockquote>
            <p><strong>说明：</strong> 你必须在设置 <code>--grace-period=0</code> 的同时额外设置 <code>--force</code> 参数才能发起强制删除请求。</p>
        </blockquote>
        <h3 id="h2pod"><span>2、Pod体面终止过程是怎么样的？</span></h3>
        <p>Pod正常终止，容器运行时会发送一个 TERM 信号到每个容器中的主进程。<code>kubelet</code> 开始本地的 Pod 关闭过程，API 服务器中的 Pod 对象被更新，记录涵盖体面终止限期在内 Pod 的最终死期30秒，超出所计算时间点则认为 Pod 已死（dead），之后 Pod 就会被从 API 服务器上移除。</p>
        <p><strong>拆分理解</strong></p>
        <ol>
            <li>发起删除一个Pod命令后系统默认给30s的宽限期，API系统标志这个Pod对象为<code>Terminating</code>（终止中）状态</li>
            <li>kublectl发现Pod状态为<code>Terminating</code>则尝试执行<code>preStop</code>生命周期勾子，并可多给2s的宽限期</li>
            <li>同时控制面将Pod中svc的<code>endpoint</code>中移除</li>
            <li>宽限期到则发送<code>TERM</code>信号，API 服务器删除 Pod 的 API 对象，同时告诉<code>kubelet</code>删除Pod资源对象</li>
            <li>Pod还不关闭再发送<code>SIGKILL</code>强制关闭，<code>kubelet</code> 也会清理隐藏的 <code>pause</code> 容器</li>
        </ol>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/10730e9d5452df58f60202341208ae79.gif" alt="" title=""><figcaption></figcaption></figure>
        <h3 id="h2kubelet"><span>2、超出终止宽限期限时，kubelet 会触发强制关闭过程，这个过程是怎么样的？</span></h3>
        <p>直接执行强制删除操作时，API 服务器不再等待来自 <code>kubelet</code> 的、关于 Pod 已经在原来运行的节点上终止执行的确认消息。</p>
        <p>API 服务器直接删除 Pod 对象，无论强制删除是否成功杀死了 Pod，都会立即从 API 服务器中释放该名字。</p>
        <p>不过在节点侧，被设置为立即终止的 Pod 仍然会在被强行杀死之前获得一点点的宽限时间。</p>
        <blockquote>
            <p>注意：这里的强制删除主要说的是从API服务器移除Pod对象</p>
            <p>ReplicaSets和其他工作负载资源不再将 Pod 视为合法的、能够提供服务的副本</p>
            <p>节点端依然是可以允许Pod体面消亡</p>
        </blockquote>
        <h3 id="h3prestop"><span>3、 如果 preStop 回调所需要的时间长于默认的体面终止限期会发生什么？</span></h3>
        <p>如果 Pod 中的容器之一定义了 <code>preStop</code> 回调勾子， <code>kubelet</code> 开始在容器内运行该回调逻辑。如果超出体面终止限期时，<code>preStop</code> 回调逻辑 仍在运行，<code>kubelet</code> 会请求给予该 Pod 的<strong>宽限期一次性增加 2 秒钟</strong>。</p>
        <h3 id="h4statefulsetpodstatefulsetpodpod"><span>4、强制删除 StatefulSet 的 Pod，会出现什么问题？为什么强制删除 StatefulSet 的 Pod可能会违背至多一个Pod原则？</span></h3>
        <p>强制删除<strong>不会</strong>等待来自 <code>kubelet</code> 对 Pod 已终止的确认消息。 <strong>无论强制删除是否成功杀死了 Pod，它都会立即从 API 服务器中释放该名字</strong>。 </p>
        <p>这将让 StatefulSet 控制器<strong>可以创建一个具有相同标识的替身 Pod</strong>；因而可能导致正在运行 Pod 的重复。</p>
        <p><code>StatefulSets</code> 可用于运行分布式和集群级的应用，这些应用需要稳定的网络标识和可靠的存储。 这些应用通常配置为具有固定标识固定数量的成员集合。</p>
        <p>具有<strong>相同身份的多个成员</strong>可能是灾难性的，并且可能<strong>导致数据丢失</strong> (例如：<strong>票选系统中的脑裂场景</strong>)。</p>
        <figure><img src="https://img-blog.csdnimg.cn/img_convert/6cb10ff2371e9709c00f1a73cc65da62.gif" alt="" title=""><figcaption></figcaption></figure>
        <hr>
        <p><strong>《Kubernetes-企业级容器应用托管》-持续胡说八道</strong></p>
        <p>第一段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484066&amp;idx=1&amp;sn=441fcae466eb5b5fba2fa29f007d7c07&amp;chksm=cf31eb74f8466262ccc258fe1d21fbd8d65e73221c211b704d216d5116a15ffcc4f4cacf5b31#rd">【云原生新时代弄潮儿k8s凭什么在容器化方面独树一帜？】</a></p>
        <p>第二段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484077&amp;idx=1&amp;sn=2ba024c0e121f7ac83e7264bdf7b4dff&amp;chksm=cf31eb7bf846626d02c59837a2f903ed848d8e0f117c80af16b364e858005c57849f0bb82e47#rd">【趁着同事玩游戏偷偷认识k8s一家子补补课】</a></p>
        <p>第三段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484110&amp;idx=1&amp;sn=cae2e84fb16b9fe5d8a7727c20009b3b&amp;chksm=cf31eb18f846620e3dd1b7b8b9008fd5960363bc6bd3de679225ea5e45f9a48e93d210ccd572#rd">【Kubernetes家族容器小管家Pod在线答疑❓】</a></p>
        <p>第四段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484122&amp;idx=1&amp;sn=4f913c1e30808622e80a386aa6b4bef8&amp;chksm=cf31eb0cf846621a4cf5ba605ec6fe4141b244dd2b8c49311accba15909f426277d643b6aceb#rd">【同事提出个我从未想过的问题，为什么Kubernetes要"多此一举"推出静态Pod概念？】</a></p>
        <p>第五段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484133&amp;idx=1&amp;sn=116c23255e688ca1b86197689bcc8b72&amp;chksm=cf31eb33f8466225400e6bfaac74d5d26de91b85e8f475ecbebedfb8ae08ebd9dde91aec1177#rd">【探针配置失误，线上容器应用异常死锁后，kubernetes集群未及时响应自愈重启容器？】</a></p>
        <p>第六段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484143&amp;idx=1&amp;sn=5e764d67105c34bbaa4c851482dbe5cc&amp;chksm=cf31eb39f846622f8c0aa21afd5d33d3928073de71058d59f974c5498bf84da2681cf76582a8#rd">【kubernetes集群之Pod说能不能让我体面的消亡呀？】</a></p>
        <p>第七段：推荐阅读：<a href="https://mp.weixin.qq.com/s?__biz=Mzg3NjU0NDE4NQ==&amp;mid=2247484153&amp;idx=1&amp;sn=2d6f43036cf2e4cea5fa2aebc4b67ebf&amp;chksm=cf31eb2ff846623904c34e84943576ccf1714d73e042bdc9a4ce584050caf3fc0a85ff5c8908#rd">【k8s家族Pod辅助小能手Init容器认知答疑？】</a></p>
        <p>第八段：待更新？推荐休闲阅读：<a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg3NjU0NDE4NQ==&amp;action=getalbum&amp;album_id=2218140423993212933#wechat_redirect">【囧么肥事】</a></p></div></div>
    <!--content E-->
</div>



</body>
<!--left bar tools js S-->
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="../../static/js/nav.js"></script>
<!--left bar tools js E-->

<!-- 滚动条 S -->
<script type="text/javascript" src="../../static/js/optiscroll.js"></script>
<!-- 滚动条 E -->

<!--commonjs S-->
<script type="text/javascript" src="../../static/js/common.js"></script>
<!--commonjs E-->

</html>
